创建UploadHandlers

目前,只有一种类型的上传处理程序可用:UploadHandlerRaw。这个类在构造时接受数据缓冲区。该缓冲区在内部复制到本机代码存储器中,然后UnityWebRequest在远程服务器准备好接受正文数据时由系统使用。

上传处理程序还接受内容类型字符串。Content-Type如果您Content-TypeUnityWebRequest本身上设置无标题,则此字符串用于UnityWebRequest 标题的值。如果您Content-TypeUnityWebRequest对象上手动设置标题,Content-Type则上传处理程序对象将被忽略。

如果你没有设置Content-TypeUnityWebRequest或者UploadHandler,系统默认设置Content-Typeapplication/octet-stream

UnityWebRequest有一个属性disposeUploadHandlerOnDispose,默认为true。如果此属性为true,则在处置UnityWebRequest对象时,Dispose()也将在附加的上传处理程序上调用,从而使其无用。如果您保持对上传处理程序的引用长于对UnityWebRequest的引用,则应将disposeUploadHandlerOnDispose设置为false

    byte[] payload = new byte[1024];
    // ... fill payload with data ...

    UnityWebRequest wr = new UnityWebRequest("http://www.mysite.com/data-upload");
    UploadHandler uploader = new UploadHandlerRaw(payload);

    // Sends header: "Content-Type: custom/content-type";
    uploader.contentType = "custom/content-type";

    wr.uploadHandler = uploader;

🔚